TIMER-SINELAIA USERS CLUB
NEWSLETTER
Toronto, Ontario
PRINTED IN CANADA
Se _
~~
Trade Mark
B6146
NOVEMBER 1984 VOL 2/NO.6
EXECUTIVE OFFICERS
PRESIDENT: George Chambers
LIBRARIAN: Martin Mauk
ASS’T LIBRARIANS: Y. Franken,
D. Cooper,
T. Haller
TREASURER: Greg Lloyd
NEWS EBITORS: Stan Protrawski;
John Roach
ACTIVITY DIRECTOR: Ian Roberts
LIASON OFFICER (Qut-of-town members): Chris Hart
Dike Mitchell
LETTER FROM THE PRESIDENT
It fs just a year since our club commenced operating with a
little more formal structure to it. Overall, we have had a successful
year. Two areas in particular have been outstanding, 1.0. our
newsletter Aas been published on a regular basis and with substantial
content; and we have had a good series of hardware-software
demonstrations at our meetings,
We have planned some Improvements to cur newsletter, namely two
or three menmber-columnists, who will cover Specific areas of interest
1.6,: telecommunrcations; 2868; new products.
Improvements are also being made to our program library and in
Servicing eur out-of-town members needs. These two aspects consume a
lot of time and we are attempting to streamline this operation.
Your executive will be considering other ways of improving club
operation. However, often these proposals Entail more work, therfore;
they can only be implemented on the basis of faving volunteers come
Forward. This has not been a problem to date, but we invite anyone to
come forward and volunteer your services,
Keeping the previous comment in mind we would welcome your
comments-suggestions on how the club could better serve member needs.
O0ut-o0f-town members may write to me at 14 Richome Court, Scarborough,
Ontario, MLK 2Y1
incidentally, at our last meeting 15 out of the 38 members
present stated that they had the 752829 computer. A whole new world is
opening fer our club!
Yours in Computing
George Chambers
(President)
PAGE 2
STORE BASIC ON EPROM WITH AN EPROM PROGRAMMER
by Virgil Roman
Now you can store all your Basic or Machine Code programs on an
Eprom chip and read them back in an instant. If you need a piece of
hardware that can program the 2716, 2732 and 2764 Eproms compatible
with all ZX-S81/Timex computers, the "Programmer" is just what I
recommend because it is very cost efficient.
Before I describe the system, let me say a few words about its
simplicity; there is nothing complicated about it! The schematics have
been improved by Rompak. The board design and artwork have been done
by a small electronic company here in Toronto. The circuit is very
simple and works very well. It comes completely assembled and tested,
or in kit form for people with electronic background.
Eproms are solid state non-volatile (does not lose memory when
computer switched of) circuit memory devices. They can be programmed
by .applying the necessary voltages and enable signals. It will not
lose the stored data when the computer is turned off. They can be
erased and then reprogrammed by exposing them by exposing them to
ultra-violet light which will set all switches to one.
The Eprom Programmer plugs into the back of the computer and can
ne accessed with POKE commands or Machine Code. A 25 volt regulated
power supply is required for 2716 and 27352 Esroms and a 21 volt power
supply is required the 2764 Eprom. A "read board" is mapped to the
unused 88-15: area for retrieving the programs stored on Eprom is also
necessary (like the Hunter board).
Operating The "Programmer"
Pigg the Eprom (2764) chip into the 28-pin socket, and note the
polarity. I you are using as Eprom with 24 pins (2716 or 2732), pin
#1 of ‘the Eprom should go into pin H3 of the 28-pin socket íi.e. down
2 positions). Turn the computer on and make sure the "K" cursor
appears. If it does, you are ready to "burn" an Eprom. Turn the
external power supply to the appropraite voltage. fi.e. 21 or 25
volts).
Hiemary Allocations
The Eeron burner operates above Ramtop starting at address
32768: i.e. POKE 32768,2405 will burn 295 into the first address of the
Eprom, which can be read back into a READ board (Hunter, Rompak, etc.)
at address 8192. The new Ramtop will be:
POKE 16388,254
POKE 16389,116
NEW
ENTER
PAGE 3
This puts the new Ramtop at 29950 (74FE Hex).
To burn a Basic program on Eprom, we need a Machine Code routine
to take the Basic program from the computer's memory and put ("burn")
it into the Eprom. This M/L routine is called "Burning Routine". Once
the Basic program is safe on the Eprom, we need a Machine Code
routine, when called by a RAND USR command (i.e. RAND USR 8192), to
stuff it back into RAM memory and run it. This machine code routine is
called the "Booter Routine”. Both routines are provided in the
instruction sheets and should be POKEd above the new RAMTOP.
Circuit Description
There are two separate circuit sections. Reter to the schematic.
The first section is memory write, the second circuit will decode the
pulse, invert the signal and time enable the pulse to S6 ms. maximum
all which is necessary for burning an Eprom.
Component Level Description
When a memory write is performed, the P4LS138 chip will decode
this. The address range of 32768 - 4959 is outside of your 16K RAM
pack and will not interfere with the normal function of your ZX/Timex
computer. This pulse is inverted with a 79500 chip to clock the
address and data into the 74LS273 chips. The signal also is used to
trigger the 355 timer chip which will "burn" the Eprom with data and
addresses stored in the ?4LS273 chips. A 39€6K resistor and .1 uf
capacitor controls the length of the timing pulse.
Recommendations
After using the "Programmer" for awhile, I have found it to be
most useful. AS a matter of fact, I consider it to be the most useful
piece of hardware I have ever bought besides the computer itself. I
strongly recommend it. The "Programmer" follows the programming
specifications of INTEL memory devices and will be compatible with
most Eproms on the market.
For more details on Eproms, read the article, "COMPATIBILITY
BETWEEN EPPONS" by H. Pun - Electronics Today (October 1784 - page
299).
If vou deide to purchase the "Programmer", by all means, go
ahead and order it and you will be glad you did:
Integrated Data Systems: (416) 466-3371
D& D Electronics Engineering Design: (416) 491-7993
PABE 4.
SYNCBITS
by Ian Robertsan
This column will, hopefully, be a regular item for our future
newsletters. It 15 our intent ta try and keep you up te date on what
is happening in the world of TIMEX SINCLAIR computers, i.e., ZX-81,
TS18800. TS1S5908, T5269 and the GL. Maybe even an item, now and then,
on the Spectrum. “' =
Resources
ZX81/7S18989;
There are still some local vendors to draw on. For example;
Integrated Data Systems- operated by fellow club member Ian Singer,
Gladstone Electronics, Software Shop and from the publishers of
Electronics Today or Computers Now magazines. A large source of Timex
products is Timex themselves in Markham, on Hood Ave., but you must
shop. in person at their Warranty Service store located at their plant.
If you phone they will simply tell you that Timex is no longer in the
computer business. The price list is; TS1999 $49.99, TS1816 RAM 16K
$25.080,T92040 printer $89.69 and all software at $5.90 each. Gladstone
have reduced their TS199@ price to $29.95, i
7582468
Again there are a couple of local sources; Integrated Data.
Systems and Gladstone Electronics. Gladstone have just reduced their
price for the 2968 to $179.95, aS well they have the Timex 2968
Technical Manual for $34.95,
Sams, the Indianapolis technical book publisher now has the
Timex Sinclair 2468 Intermediate/Advanced Guide available at $9.95 US.
- I purchased my copy from E. Arthur Brown and the book seems to
—-Ccüampliment the Timex Technical Manual.
QL
Constant monitoring of the U.K. computer press indicates that
all is not well with the current model of the SL. Everyone agrees that
while the 8L is a great idea, the implimentation of this idea is less
than great. For example- "superbasic" is far from super, in fact ot's
reputed to be slow and tedious - GSDOS needs a lot of work to meet
industry standards and the microdrives do not load and save with the
integrity required in business or serious use. The biggest complaint
is with the size of memory, apparantly 128K is not large enough to
utilize the much vaunted "multi-tasking" aspect of the 68982880. ther are
even complaints about the quality of the PSION software packaged with
the QL. Hopefully, all of this will be corrected prior to the GL
entering the North American market by Sinclair Research in Boston via:
mail order, next Spring
PAGE 5
Hardware/So/tware:;
The big item in the news lately seems to be the number of
"spectrum Compatible” ROM devices being sold. I have ordered the
Russell Electronics ” ROMSWITCH" from E, Arthur Brown and look
forward to being able to use some of those 5,999 or so Spectrum
programs that are available in the U.K. There is also a U.K. supplier
of the Spectrum ROM, which we will report on when the club receives
pur goods ordered.
Apparantly the 2868 could be revived, as rumours persist that
several parties are interested in either manufacturing or distributing
this product. Only time (definately MOT Timex) will tell.
I have learned from Westridge Communications that their new
version of the 28056 modem software is issued ffor distribution and
that they will not be producing the 2958 "expansion box". In fact they
say that they never even heard of this item before. Rumour laid to
rest!
Magazines;
If you are looking for newstand magazines tor our computers
there are only 2 available, and they are both from the U.K.: "Your
Computer", published monthly and "ZX Computing", published bi-monthly.
Both are available from Litchmans bookstores in the Toronto area.
If you want really good (510090 and 2068 U.S. dedicated magazines
there are only 3: "Syntax" published monthly by The Harvard Group,
Bolton Road, Harvard, Mass. @1451, at an incredible price of $98.848
U.S. per year. "Syncware News” published monthly by Thomas B. Woods
(of ZX PRO/FILE tame), P.O. Box 64, Jefferson, N.H., 93583, at a more
reasonable $16.95 U.S. per year.
"T-S Horizons” published monthly by T-S Horizons, Subscription
Dept., 2002 Summit Street, Portsmouth, OH., 45662, at $21.00 U.S. per
year.
8K EEPROM BOARD
by John Roach
In this project we are going to build a non-volatile memory
expansion board that doesn’t require batteries or a separate PROM
blaster card. Everything we need will be on one simple card. Your cost
to buy one of the popular PROM cards along with a separate programmer
would probably be at least $158 dollars. Our project, hopefully,
should cost less than $59.
The heart of the board is a Seeq Technology &8K x € EEPROM, a
memory chip that can be both erased and written to with only 5 Vdc.
Once the chip has been programmed and the power to the computer turned
off, the memory is permanent - even if you remove the chip from the
board. This chip is also the most expensive component on the board. In
^.
PAGE 6
Single quantity the price is $35. However, if there is enough interest
in building the project we can get a good quantity discount.
Circuit Operation
Our circuit is designed to let the 8K of memory reside in the
empty 8K to 16K portion of the memory map. When addressing this area,
address lines A15 and Alá will be low and line 13 high. The MREG,
memory request line is alsa low. Line A13 is first inverted through
ICia so that when 102 sees all its inputs low, it puts its output low.
This signal has 3 jobs to do. The first is to disable the ROM in the
computer to prevent memory ghosting. This we do by inverting the low
output of IC2 through ICib putting a high on the ROMCS line on the 1/0
bus. The second job is to enable our memory chip IC4 by putting a low
on its CE chip enable pin. The third job we'll skip untill we look at
a memory write cycle. For now we'll assume we are going to do a memory
read.
So far we've decoded the address, enabled the memory chip and if
we're doing a read the RD line on the I/O bus should be low, it's
directly connected to IC4's output enable pin, OE. At this point the
byte at the memory location we've addressed is plopped out onto the
1/0 data lines DØ to D? ending the read cycle. So far everything has
been fairly simple, but now let's take a look at a write cycle.
A write to the EEPROM only requires 3 volts but in order to
program the chip the write pulse has to be 1 millisecond long. This is
a lot longer than the 280 write pulse which is about 19 nanoseconds.
Here's where IC3 comes into play as well as the third job required of
IC2. When 102 sees an address in the 8K to 16K area of memory its
Output goes low, as we saw above, the output is inverted through ICib
and is used to enable 1C3 which forms part of a single shot pulse
stretching circuit. When the write pulse from the 1/0 bus is applied
to an enabled IC3, its output delivers a 1 ms. low pulse to the write
enable pin of our memory chip and the byte on the 1/0 bus line DØ to
D? is implanted forever into the EEPROM, or untill you do another
write cycle to the same address. One limitation fo the chin is that
you can only do 16,888 write cycles to any one individual byte
address.
One other requirement in writing to the chip is that you can
Only overwrite a byte that is all 175. This is not a problem, if you
refer to Listing i which is a simple program to POKE data to
sequential addresses you will see that a check is made by PEEKing
first and if the location does not contain all 175 we just stuff them
in before we write in the data we want there. Typically it shouldn't
take more than about 88 seconds to write SKbytes to our memory chip.
In spite of all the timing requirements and only being able to
overwrite a byte thats all 1's it's probably a good idea to include
the write protect switch shown on the diagram.
As far as applications for the EEPROM board, it can be used to
store machine code programs that will run right from addresses on the
board as the read time is 239 ns. and the computer sees it as RAM. It
can (also store BASIC programs although they can't be run from the
PASE 7
board, you would simply down load the biock of memory containing the
tokenized program to the EEPROM and up load it back to the BASIC area
in RAM when you want to run it.
In the conciudins portion o* this project, appearing in the next
newsletter, we wili over construction details, PC board layouts,
where to get parts, more software ior loading and some sugestions for
modifications to make ine board usable oan the 2868 - both on the
expansion bus and the cartridse dock,
m
23
ES
c
Program Listing d
18 REM XX EEPROM LOADER XX
26 REM S= STARTING ADDF. GF
3d REM DATA IN RAM,
49 REM N= NUMBER OF BYTES -i.
50 REM E= EEPROM START ADDRES.
58 LET 5= 14426
76 LET N= 20682
38 LET E= 8280
8S8 FOR I= D TO D+N
99 IF PEEK (E) = 255 THEM GUTC 1.50
19@ POKE P, 235
119 FOR J= 1 T3 Z
120 NEXT J
138 POKE P, PEEK (1)
14@ NEXT I
159 PRINT "I’M LGADED, EH!”
168 STOP
PROGRAM CREDITS
hy G.F. Chambers
In locking through our library of pragrams, I am struck by the
number of contributions which contain no hint of their source or
origin. They are something like a ship without a name or a letter
without an address, This is unfertunate because, at the very least,
someone who went to the troubie of creating the program or entering it
does not get appropriate credit. it also makes it difficult for the
next user to refer back to its Grisins should the need arise.
The introduction could be as simple 23 a two-line entry as
follows:
19 REM GRAPHICS DEMONSTRATICN
26 REM FROM 22:81 PROGRAMMING MANUAL CHAPTER 18, PAGE 121
An original program probably deserves that more credit be given
the maker. Take a lock at the partial listing shown in the example.
Here, the program is "n "Autco-REun"; that is. if it is SAVEd by a
direct command - GOTO 22292, it will SAVE itself. Then, when you LOAD
it into your computer, it will automatically RUN or continue at 9919.
(If you wish to use RUN ar GOTO ta start a program, the initial line
in the program should be: 20508 9919 to enter into this routine and
line 99348 should read PETURN?).
oo
PAGE 8
To get back to the original subject, note line: 9919 LIST
9978. This will cause the program to be listed automatically on the
screen from line 9978 onwards. This will display any notice about the
program you care to present.
Several points should be noted. The listing to be displayed
needs to be at the end of the program and not to be so lengthy that it
exceeds the screen size (21 lines). If the listing called up in line
9918 exceeds the screen size, it will cause a CODE S report and the
program will stop.
Motice that lines 9997 & 9998 contain an instruction to the user
to press a key. This is because although the listing appears on the
screen, the computer is still in the program operation mode and in
fact is at line 9929 PAUSE 464: i.e. waiting for a key to be pressed
(waiting "forever" - 4E4 sounds like the word *forever”). After a key
is pressed, the program will proceed to the next line: 9939 GOTO 2999
which happens to be start of the main program in the particular
program this example was taken from. (PAUSE 4E4 = PAUSE 499@ = PAUSE
FOREVER. See Sinclair/Timex manual, Chapter 19),
PROGRAM EXAMPLE OF CREDITS
9998 SAVE "METRIC"
9918 LIST 9979
9926 PAUSE 4E4
9938 GOTO 2099
9974 REM
9971 REM
9972 REM METRIC CONVERSION
7978 REM 9 -—-----9----2----2-—-
9979 REM
99880 REM
9982 REM AN ORIGINAL PROGRAM
9983 REM
9984 REM WRITTEN BY
92985 REM G.F. CHAMBERS
9988 REM (C) 1984
9989 REM
9991 REM
9992 REM DATA TAKEN FROM
9993 REM THE BOOK ENTITLED
9994 REM "COMPLETE HANDYMAN'S
9995 REM ENCYCLOPEDIA"
9997 REM TO START PROGRAM
9998 REM PRESS ANY KEY
9999 REM
uM
PAGE 9
TS 2068 PROGRAMMING
by John Roach
Recognizing UDG’s
As you know from the manual, there are 21 User Defineable
Graphic characters which can be assigned from CODE 144 to CODE 164. To
show what you are doing and to keep program LISTing as clear as
possible, it's best to use the CHR$ function rather than shifting to
the Graphics mode.
18 PRINT CHRE 144; CHRS 1455 CHRS 146
It's instantly recognizable as UDG's.
UDG Loader
This routine is not in the manual but it saves a lot of typing
time not using all the BIN values.
9888 FOR g-144 TO 164 (or less)
9819 FOR n-8 TO 7
9929 READ a : POKE USR CHR$ q + n,a
9938 NEXT n
99849 RESTORE : RETURN
90560 DATAN aras a
Each data statement contains 8 numbers per line; each number is
the decimal value for the binary bits in UDG character row. Each data
statement defines one character.
Fancy Titles
Assign a string to T$ less than or equal to 32 characters for
the title and a value to the variable "pa" less than 22 for PRINT AT
line number:
19 LET T$ = "HERE IS A PROGRAM TITLE"
28 LET pa = 1C
39 GOSUB 199
44 STOP
180 LET M = LEN T$ : IF M/2 < > INT (M/2) THEN LET T$ = T$ + " "
: LET M = M #1
119 FOR N = 1 TO M/2 : PRINT AT pa, 16-N5 T$ ( TO N); T$ (M – N +
TO ): BEEP .92,2 X* N : NEXT N : RETURN
PAGE 19
MACHINE CODE PROGRAMMING
The +oliowing is a list of the keyboard values when K-SCAN
called in Msi (CALL 699 or in code: 205, 187, 2) which returns the
value in the HL register. Note, these are all computed values so to
find the value in H? & ?*L? we must find it ourselves. e.g., the value
returned to HL when the number °P? 15 pressed (or left arrow) is
57335. Therefore, to find the value contained in 'HL',:
19 LET H = INT (57335/256) £223
28 LET L = 57335 - (H * 256) :247
39 PRINT "H-"jH, "L="3L
49 STOP
Therefore, if we were testing to see if the user was pressing
the 75? key tor left arrow), we would first CALL 699 then LD B,223 te
LD 0OC,247; LD A,H & CP B; LD A,L & CP C. If they matched, then continue
on with the program.
Whenever you're programming in machine code, do not forget that
there are many routines in ROM that we can use (which will be
discussed as we go along). Also, when reading articles about machine
code, they sometimes have a useful routine which can be called. For
example, in Toni Baker's book, "MASTERING MACHINE CODE ON YOUR ZX-S81",
has many useful subroutines. We will be using some of them such as
printing numbers to the screen for increasing/decreasing the scores;
or on page 59 is a very useful routine for printing a complete picture
or text to the screen in machine code.
TRIVIA:
258 baud means about 25 bytes per second; 1568 baud means about
158 bytes per second: for LOADing or SAVEing values which is why the
ZX-81 takes so long to LOAD or SAVE!
BASIC PROGRAMMING
Side Scroli a Message
190 LET AS = "print your message with as many characters as you
like but not less than 33, then S spaces then an asterisk (X)"
118 LET N= 1
120 IF AS (M + 31) = "X" THEN GOTO 119
138 PRINT AT 18,8; AS (N TO N + 39)
iae FOR I = 1 TO 3
158 NEXT I
169 LET N = M + 1
179 GOTO 120
LETTER FROM THE NEWS EDITORS
Well that's it again for this Newsletter. AS you can see, with more
submissions, we can print a varied type of Newsletter that should
appeal to the various interests of club members.
When submitting articles,
write neatly
article.
of it
is a written submission.
re-typed into the Newsletter and
PAGE 11
please use double spacing when typing and
All articles have to be.
it 15 much easier for us. Also, we
don’t have an Art Department so any drawings,
submitted; make them neat and on a separate piece of paper from your
etc.
will be entered as
So until the next flewsletter (in January), have fun programming.
Table of ‘Key Values’
fO 0 00 &QIN -+
–
ZOXACIONON»>VO7CXAD
EWLINE
eZ20<OXN
| Hex. Value |
' GRAPHICS
RUBOUT
FUNCTION
MIN UI
m-
Stan & John
News Editors
Dec. Value
FCEF
FCFB
FAFB
F6FB
EEFB
DEFB
DEDF
EEDF
F6DF
FADF
FCDF
FCFD
FAFD
F6FD
EEFD
DEFD
DEBF
EEBF
F6BF
FABF
FCBF
FAFE
F6FE
EEFE
DEFE
DE7F
EE7F
F67F
FA7F
FC7F
64751
64763
64251
63227
61179
57083
57055
61151
63199
64223
64735
64765
64253
63229
61181
57085
§7023
61119
63167
64191
64959
64254
63230
61182
57086
56959
61055
63103
64127
64639
A13
Al2
All
A1O
A9
A8
AT
A6
AS
ჩ 4
A3
A2
Al
AO
8K EEPROM BOARD
Ici - 74LS04
IC2 - 74L532
IC3 - 74L5I23
1C4 - 52B33H
O GND
RI
4.7 k
RIT
ROTECT
O^ O
Sw-1
HEX INVERTER
QUAD OR GATE
MONOSTAELE MULTIVIBRATOR
6Kx8 EEPROM